package com.gengzp.rpc.exception;

import static com.gengzp.rpc.constants.RpcRequestCodeConstants.RPC_REQUEST_FAIL;

/**
 * @ClassName RpcException
 * @Description
 * @Author gengzp
 * @Date 2025/8/21 9:48
 */
public class RpcException extends RuntimeException {

    /**
     * 异常编码
     */
    private final Integer code;

    /**
     * 私有化构造方法, 禁止外部直接实例化
     *
     * @param code    错误码
     * @param message 异常提示信息
     */
    private RpcException(Integer code, String message) {
        super(message);
        this.code = code;
    }

    /**
     * 根据传入的错误码和错误信息, 创建一个权限认证失败异常
     *
     * @param message 错误信息
     */
    public static RpcException get(String message) {
        return new RpcException(RPC_REQUEST_FAIL, message);
    }

    public Integer getCode() {
        return code;
    }

}
